#pragma once

#include<assert.h>
#include<stdio.h>
#include<stdlib.h>

typedef int DLTDataType;
typedef  struct DListNode
{
	struct DListNode* prev;
	struct DListNode* next;
	DLTDataType data;
}DListNode;

DListNode* BuyDListNode(DLTDataType x);
DListNode* DListInit();
void DListPrint(DListNode* phead);
void DListPushBack(DListNode* phead, DLTDataType x);
void DListPopBack(DListNode* phead);

void DListPushFront(DListNode* phead, DLTDataType x);
void DListPopFront(DListNode* phead);

void DListInsert(DListNode* pos, DLTDataType x);
void DListEraser(DListNode* pos);

int DListSize(DListNode* phead);

DListNode* DListFind(DListNode* phead, DLTDataType x);

void DListDestroy(DListNode* phead);


